//
//  Extension+NSDate.swift
//  YDWeibo01
//
//  Created by suibian on 16/8/15.
//  Copyright © 2016年 iitcast. All rights reserved.
//
//             日历类 NSCalendar.currentCalendar 和 NSDateFormatter 对ios性能影响很大 所以创建一个全局的 oc中可以使用单例
import UIKit
//        时间格式化
    private let df = NSDateFormatter()

let calendar = NSCalendar.currentCalendar()

extension NSDate{
    class func getSinaDate(creatAt:String)->NSDate{
        
        //        设置格式
        df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        //        时间本地化
        df.locale = NSLocale(localeIdentifier: "en_US")
        //        微博时间
        let sinaDate = df.dateFromString(creatAt)!
        return sinaDate
    }

//    得到微博时间格式化后的字符串
    var sinaDateDescription:String{
    
    
        //        默认不是今年
        let isThisYear = sinaIsThisYear(self)
        //        判断是否是今年
        if isThisYear{
//            df.dateFormat = "yyyy年MM月dd日 HH:mm"
           
            
            //            如果是今天
            if calendar.isDateInToday(self){
                //                当前时间个微博时间求差
                let s = Int(NSDate().timeIntervalSinceDate(self))
                if s < 60{
                    return "刚刚"
                }else if s >= 60 && s < 3600{
                    
                    return "\(s/60)分钟前"
                }else{
                    
                    return "\(s/3600)小时前"
                    
                    
                }
                //            是昨天
            }else if calendar.isDateInYesterday(self){
                df.dateFormat = "昨天 HH:mm"
                
                //            其他
            }else{
                df.dateFormat = "MM月DD日 HH:mm"
                
            }
            
        }else{
//            不是今年的格式
            df.dateFormat = "yyyy年MM月DD日 HH:mm"
        }
        return df.stringFromDate(self)
    
    }
    
    func sinaIsThisYear(sinadate:NSDate) ->Bool{
  
        //        设置格式
        df.dateFormat = "yyyy"
        //        时间本地化
        df.locale = NSLocale(localeIdentifier: "en_US")
        //        微博时间字符串
        let sinaTimeStr = df.stringFromDate(sinadate)
        //        当前时间
        let currentTimeStr = df.stringFromDate(NSDate())
        
        return sinaTimeStr == currentTimeStr
    }


}